package com.tianlu.store.entity;
 
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.annotation.TableField;
import com.tianlu.store.enums.ProductTypeEnum;
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.tianlu.store.common.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableName;

import javax.persistence.Transient;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 订单商品表(OrderProduct)实体类
 *
 * @author 梁东烂
 * @since 2023-04-03 18:05:20
 */
@Data
@ApiModel(value = "订单商品表实体类", description = "订单商品表实体类")
@TableName("t_order_product")
public class OrderProduct extends BaseEntity<OrderProduct> {
    private static final long serialVersionUID = -84398887338465568L;
    /**
     * 订单id
     */   
    @ApiModelProperty(value = "订单id")
    private Long orderId;
    /**
     * 商品id
     */
    @ApiModelProperty(value = "商品id")
    private Long productId;
    /**
     * 商品名称
     */   
    @ApiModelProperty(value = "商品名称")
    private String name;
    /**
     * 商品描述
     */   
    @ApiModelProperty(value = "商品描述")
    private String description;
    /**
     * 实付金额
     */   
    @ApiModelProperty(value = "实付金额")
    private BigDecimal actualPrice;
    /**
     * 主图
     */   
    @ApiModelProperty(value = "主图")
    private String mainPicture;
    /**
     * 详情图
     */   
    @ApiModelProperty(value = "详情图")
    private String detailPicture;
    /**
     * 数量
     */
    @ApiModelProperty(value = "数量")
    private Integer quantity;
    /**
     * 类型：1普通商品，2代理商礼包，3分公司礼包，4免费商品, 5秒杀商品
     */
    @ApiModelProperty(value = "类型：1普通商品，2代理商礼包，3分公司礼包，4免费商品, 5秒杀商品")
    private Integer type;

    /**
     * 类型：1普通商品，2代理商礼包，3分公司礼包，4免费商品, 5秒杀商品
     */
    @Transient
    @TableField(exist = false)
    @ApiModelProperty(value = "类型：1普通商品，2代理商礼包，3分公司礼包，4免费商品, 5秒杀商品")
    private String typeText;
    public String getTypeText() {
        return type == null ? "" : ProductTypeEnum.findByCode(type);
    }

    /**
     * 主图
     */
    @Transient
    @TableField(exist = false)
    @ApiModelProperty(value = "主图")
    private List<String> mainPictureList;
    public List<String> getMainPictureList() {
        return StrUtil.isBlank(mainPicture) ? new ArrayList<>() : Arrays.asList(mainPicture.split("\\|"));
    }

    /**
     * 主图
     */
    @Transient
    @TableField(exist = false)
    @ApiModelProperty(value = "主图")
    private List<String> detailPictureList;
    public List<String> getDetailPictureList() {
        return StrUtil.isBlank(detailPicture) ? new ArrayList<>() : Arrays.asList(detailPicture.split("\\|"));
    }
}
